Technical Field
Embodiments of the present disclosure relate generally to video encoding, and more specifically to reducing computational complexity when video encoding uses bi-predictively encoded frames.
Related Art
Video encoding generally refers to operation(s) performed to encode image frames into a form suitable for transmission on a communication channel and/or storage in a storage device, and may include operations such as compression, encryption, quantization, etc.
In video encoding, an image frame is typically divided into several blocks termed macro-blocks, and each of the macro-blocks is then encoded using spatial and/or temporal compression techniques. Accordingly, compressed representation of a macro-block may be obtained based on similarity of the macro-block with other macro-blocks in the same image frame (the technique being termed intra-frame prediction), or based on similarity with macro-blocks in other (reference) frames (the technique being termed inter-frame prediction).
Inter-frame prediction of macro-blocks in an image frame may be performed using a reference frame that occurs earlier than the image frame in display (or frame generation) order, or using multiple reference frames, one reference frame occurring earlier in the display order and another occurring later in the display order.
Bi-predictively coded frames (termed B-frames) are frames whose macro-blocks may be encoded using a reference frame earlier than the B-frame in display order, using a reference frame later than the B-frame in display order, or using two reference frames one earlier and the other later in display order with respect to the B-frame. An example of a video encoding standard that used bi-predictively coded frames is H.264/AVC.
Encoding of B-frames may be associated with increased computational complexity due, at least, to the use of multiple reference frames for the encoding. Several embodiments of the present disclosure address encoding techniques aimed at reducing the computational complexity when video encoding uses bi-predictively coded frames.